package Terminal.View;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JPanel;

import Terminal.View.Gestori.GestoreInterfaccia;
import Terminal.View.Gestori.GestoreTimeRecord;

public class JBarraNavigazione extends JPanel {

	private static final long serialVersionUID = 1L;
	
	JLabel etichetta;
	JLabel navigazione;
	JButton indietro;
	JButton logout;
	protected GestoreTimeRecord mediator = GestoreTimeRecord.istanza();

	public JBarraNavigazione() {
		super();
		this.createComponents();
	}

	private void createComponents() {
		
		this.setBounds(0, 161, 1366, 50);
		this.setLayout(null);
		//this.setBackground(Color.WHITE);
		
		this.setEtichetta();
		this.setNavigazione();
		this.setIndietro();
		this.setLogout();
		
		this.add(etichetta);
		this.add(navigazione);
		this.add(indietro);
		this.add(logout);
		
		this.setVisible(true);
	}

	private void setEtichetta() {
		etichetta = new JLabel();
		
		etichetta.setBounds(50, 5, 200, 40);
		etichetta.setText("Gerarchia: ");
		etichetta.setFont(new Font( etichetta.getFont().getName(), Font.BOLD, 18 ));
		etichetta.setForeground(Color.BLACK);
	}		


	private void setNavigazione() {
		navigazione = new JLabel();
		navigazione.setBounds(250,5,500,40);
		navigazione.setFont(new Font( navigazione.getFont().getName(), Font.ITALIC, 16 ));
	}

	private void setIndietro() {
		indietro = new JButton();
		indietro.setBounds(1050, 5, 100, 40);
		
		indietro.setText("Indietro");
		indietro.setFont(new Font( indietro.getFont().getName(), Font.PLAIN, 16 ));		
		indietro.setEnabled(false);
		
	}
	
	private void setLogout() {
		logout = new JButton();
		logout.setBounds(1200, 5, 100, 40);
		
		logout.setText("Logout");
		logout.setFont(new Font( logout.getFont().getName(), Font.PLAIN, 16 ));			
		logout.setEnabled(true);
		
		logout.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {

				mediator.smista("Autenticarsi", "Logout");
				
			}
		});
	}
	
	/**
	 * la stringa setta verso quale gestore ritornare
	 * @param stringa
	 */
	public void setIndietro(final String controller, final String scenario){
		indietro.setEnabled(true);
		indietro.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				mediator.smista(controller, scenario);
				
			}
		});
	}
	
	public void setNavigazioneText(String navigazione){
		this.navigazione.setText(navigazione);
	}
	
	public void setEnableBottoniNavigazione(boolean bool){
		this.indietro.setEnabled(bool);
		this.logout.setEnabled(bool);
	}
	
}
